package com.xiaoyu.lib_av.proxy

import `in`.srain.cube.util.internal.AppCallback
import android.view.ViewGroup
import com.xiaoyu.lib_av.datamodel.CallHangUpType
import com.xiaoyu.lib_av.datamodel.CallMessage
import com.xiaoyu.lib_av.datamodel.CallParams
import com.xiaoyu.lib_av.datamodel.CallResponseType

interface ICallProxy : IAVProxy {

    val isLocalCalling: Boolean

    fun call(params: CallParams, callback: AppCallback<Boolean>?)

    fun response(fuid: String?, @CallResponseType.CallResponseTypeDef responseType: String)

    fun cancelCall(fuid: String?)

    fun disconnect(fuid: String?, @CallHangUpType.HangUpTypeDef hangupType: String)

    fun sendMessage(message: CallMessage)

    fun setupLocalVideo(container: ViewGroup)

    fun setupRemoteVideo(container: ViewGroup, fuid: String)
}
